package cn.sdfykjyxgs.syncommon.service;

import cn.sdfykjyxgs.syncommon.entity.FileChangeLog;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.File;
import java.util.List;

public interface FileChangeLogService extends IService<FileChangeLog> {
    //判断文件是否存在记录

    /**
     * 判断文件是否存在记录
     *
     * @param ulr
     * @param name
     * @return
     */
    boolean fileExisted(String ulr, String name);
    //判断记录中的文件是否为最新文件

    /**
     * 判断记录中的文件是否为最新文件
     *
     * @param ulr
     * @param name
     * @return
     */
    boolean fileLogIsLatest(String ulr, String name);
    //新增文件日志

    /**
     * 新增文件日志
     *
     * @param ulr
     * @param name
     * @return
     */
    FileChangeLog saveFileLog(String ulr, String name);

    /**
     * 删除文件日志
     *
     * @param ulr
     * @param name
     * @return
     */
    FileChangeLog removeFileLog(String ulr, String name);

    /**
     * 文件内容被修改日志
     * @param ulr
     * @param name
     * @return
     */
    FileChangeLog fileModifiedLog(String ulr, String name);

    /**
     * 文件名称被修改日志
     * @param ulr
     * @param name
     * @param oldName
     * @return
     */
    FileChangeLog fileRenamedLog(String ulr, String name,String oldName);
//修改文件日志同步状态

    /**
     * 修改文件日志同步状态
     *
     * @param fileId
     * @return
     */
    boolean synStatusFileLog(Integer fileId);
    //返回待同步日志记录

    /**
     * 返回待同步日志记录
     *
     * @return
     */
    Page<FileChangeLog> syncData();
    List<FileChangeLog> syncDataList();
    String getFileKey(File file,Boolean isIn);
    FileChangeLog queryById(Long fileId);
    void refreshStatus(Long fileId);
}
